package com.ruoyi.common.core.domain;

import com.ruoyi.common.annotation.Excel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 供应商管理对象 tb_vendor
 * 
 * @author ruoyi
 * @date 2023-09-18
 */

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Vendor extends TreeEntity
{
    private static final long serialVersionUID = 1L;

    /** 供应商id */
    private Long id;

    /** 供应商编号 */
    @Excel(name = "供应商编号")
    private String vendorNumber;

    /** 供应商名称 */
    @Excel(name = "供应商名称")
    private String name;

    /** 供应商产品分类（关联tb_product_cates表id） */
    private Long catesId;

    /** 银行卡号 */
    @Excel(name = "银行卡号")
    private String bankCards;

    /** 开户行 */
    @Excel(name = "开户行")
    private String accountBank;

    /** 开户人 */
    @Excel(name = "开户人")
    private String accountHolder;

    /** 收款单位 */
    @Excel(name = "收款单位")
    private String receivingUnit;

    /** SWIFT CODE */
    @Excel(name = "SWIFT CODE")
    private String swiftCode;

    /** 办公地址 */
    @Excel(name = "办公地址")
    private String officeAddress;

    /** 生产地址 */
    private String productionAddress;

    /** 供应商网站 */
    @Excel(name = "供应商网站")
    private String supplierWebsite;

    /** 账款额度 */
    private BigDecimal accountLimit;

    /** 付款方式 (关联tb_payment表的id) */
    private Long paymentId;

    /** 结款日期 */
    private String paymentDate;

    /** 排序 */
    private Long monetaryId;

    /** 主联系人 */
    private String primaryContact;

    /** 职务 */
    private String office;

    /** 电话 */
    private String phone;

    /** 微信 */
    private String wx;

    /** QQ */
    private String qq;

    /** Email邮箱 */
    private String email;

    /** 备注 */
    @Excel(name = "备注")
    private String vendorRemark;

    /** 合同模板id */
    private Long templatesId;

    /** 合同 */
    private String contract;

    /** 删除状态 0存在1删除 */
    private String deleteStatus;

    /** 添加时间 */
    private Date addTime;

    /** 付款比例 */
    private String ratio;

    /** 供应商属性 */
    private String attribute;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getVendorNumber() {
        return vendorNumber;
    }

    public void setVendorNumber(String vendorNumber) {
        this.vendorNumber = vendorNumber;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Long getCatesId() {
        return catesId;
    }

    public void setCatesId(Long catesId) {
        this.catesId = catesId;
    }

    public String getBankCards() {
        return bankCards;
    }

    public void setBankCards(String bankCards) {
        this.bankCards = bankCards;
    }

    public String getAccountBank() {
        return accountBank;
    }

    public void setAccountBank(String accountBank) {
        this.accountBank = accountBank;
    }

    public String getAccountHolder() {
        return accountHolder;
    }

    public void setAccountHolder(String accountHolder) {
        this.accountHolder = accountHolder;
    }

    public String getOfficeAddress() {
        return officeAddress;
    }

    public void setOfficeAddress(String officeAddress) {
        this.officeAddress = officeAddress;
    }

    public String getProductionAddress() {
        return productionAddress;
    }

    public void setProductionAddress(String productionAddress) {
        this.productionAddress = productionAddress;
    }

    public String getSupplierWebsite() {
        return supplierWebsite;
    }

    public void setSupplierWebsite(String supplierWebsite) {
        this.supplierWebsite = supplierWebsite;
    }

    public BigDecimal getAccountLimit() {
        return accountLimit;
    }

    public void setAccountLimit(BigDecimal accountLimit) {
        this.accountLimit = accountLimit;
    }

    public Long getPaymentId() {
        return paymentId;
    }

    public void setPaymentId(Long paymentId) {
        this.paymentId = paymentId;
    }

    public String getPaymentDate() {
        return paymentDate;
    }

    public void setPaymentDate(String paymentDate) {
        this.paymentDate = paymentDate;
    }

    public Long getMonetaryId() {
        return monetaryId;
    }

    public void setMonetaryId(Long monetaryId) {
        this.monetaryId = monetaryId;
    }

    public String getPrimaryContact() {
        return primaryContact;
    }

    public void setPrimaryContact(String primaryContact) {
        this.primaryContact = primaryContact;
    }

    public String getOffice() {
        return office;
    }

    public void setOffice(String office) {
        this.office = office;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getWx() {
        return wx;
    }

    public void setWx(String wx) {
        this.wx = wx;
    }

    public String getQq() {
        return qq;
    }

    public void setQq(String qq) {
        this.qq = qq;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getVendorRemark() {
        return vendorRemark;
    }

    public void setVendorRemark(String vendorRemark) {
        this.vendorRemark = vendorRemark;
    }

    public Long getTemplatesId() {
        return templatesId;
    }

    public void setTemplatesId(Long templatesId) {
        this.templatesId = templatesId;
    }

    public String getContract() {
        return contract;
    }

    public void setContract(String contract) {
        this.contract = contract;
    }

    public String getDeleteStatus() {
        return deleteStatus;
    }

    public void setDeleteStatus(String deleteStatus) {
        this.deleteStatus = deleteStatus;
    }

    public Date getAddTime() {
        return addTime;
    }

    public void setAddTime(Date addTime) {
        this.addTime = addTime;
    }

    public String getReceivingUnit() {
        return receivingUnit;
    }

    public void setReceivingUnit(String receivingUnit) {
        this.receivingUnit = receivingUnit;
    }

    public String getSwiftCode() {
        return swiftCode;
    }

    public void setSwiftCode(String swiftCode) {
        this.swiftCode = swiftCode;
    }

    public String getRatio() {
        return ratio;
    }

    public void setRatio(String ratio) {
        this.ratio = ratio;
    }

    public String getAttribute() {
        return attribute;
    }

    public void setAttribute(String attribute) {
        this.attribute = attribute;
    }

    @Override
    public String toString() {
        return "Vendor{" +
                "id=" + id +
                ", vendorNumber='" + vendorNumber + '\'' +
                ", name='" + name + '\'' +
                ", catesId=" + catesId +
                ", bankCards='" + bankCards + '\'' +
                ", accountBank='" + accountBank + '\'' +
                ", accountHolder='" + accountHolder + '\'' +
                ", receivingUnit='" + receivingUnit + '\'' +
                ", swiftCode='" + swiftCode + '\'' +
                ", officeAddress='" + officeAddress + '\'' +
                ", productionAddress='" + productionAddress + '\'' +
                ", supplierWebsite='" + supplierWebsite + '\'' +
                ", accountLimit=" + accountLimit +
                ", paymentId=" + paymentId +
                ", paymentDate='" + paymentDate + '\'' +
                ", monetaryId=" + monetaryId +
                ", primaryContact='" + primaryContact + '\'' +
                ", office='" + office + '\'' +
                ", phone='" + phone + '\'' +
                ", wx='" + wx + '\'' +
                ", qq='" + qq + '\'' +
                ", email='" + email + '\'' +
                ", vendorRemark='" + vendorRemark + '\'' +
                ", templatesId=" + templatesId +
                ", contract='" + contract + '\'' +
                ", deleteStatus='" + deleteStatus + '\'' +
                ", addTime=" + addTime +
                ", ratio='" + ratio + '\'' +
                ", attribute='" + attribute + '\'' +
                '}';
    }
}
